// var i;
// var $bundleConfig = require("./BundleConfig");
// var $eventManager = require("./EventManager");
// var $resKeeper = require("./ResKeeper");
// var $evenType = require("./EvenType");
// var $uI_AttackTongJi = require("./UI_AttackTongJi");
// var f = cc._decorator;
// var g = f.ccclass;
// var _ = f.property;
// var y = f.inspector;
// var m = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.contentNode = null;
//         t.nowNode = null;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.onEnable = function () {
//         $eventManager.EventMgr.addEventListener($evenType.EVENT_TYPE.GAME_HIDE_TONGJI, this.hideTongji, this);
//     };
//     t.prototype.onDisable = function () {
//         $eventManager.EventMgr.rmEventListener($evenType.EVENT_TYPE.GAME_HIDE_TONGJI, this.hideTongji, this);
//     };
//     t.prototype.showTip = function () {
//         return __awaiter(this, void 0, void 0, function () {
//             var e;
//             return __generator(this, function (t) {
//                 switch (t.label) {
//                     case 0:
//                         if (this.nowNode) {
//                             return [3, 2];
//                         } else {
//                             return [4, this._loadRes($bundleConfig.BundleNames.Game, "prefabs/TongJiUi", cc.Prefab)];
//                         }
//                     case 1:
//                         e = t.sent();
//                         this.nowNode = cc.instantiate(e);
//                         this.contentNode.addChild(this.nowNode);
//                         t.label = 2;
//                     case 2:
//                         this.nowNode.getComponent($uI_AttackTongJi.default).showTongJi();
//                         return [2];
//                 }
//             });
//         });
//     };
//     t.prototype.hideTongji = function () {
//         if (this.nowNode) {
//             this.nowNode.getComponent($uI_AttackTongJi.default).hideTongji();
//         }
//     };
//     __decorate([_(cc.Node)], t.prototype, "contentNode", void 0);
//     return __decorate([g], t);
// })($resKeeper.default);
// exports.default = m;

// import {BundleNames} from "./BundleConfig";
// import {EventMgrInstance} from "./EventManager";
// import ResKeeper from "./ResKeeper";
// import {EVENT_TYPE} from "./EvenType";
// import UI_AttackTongJi from "./UI_AttackTongJi";

// const { ccclass, property, inspector } = cc._decorator;

// /**
//  * 建议类名: AttackStatisticsUI
//  * 这个类负责显示和隐藏攻击统计的UI界面
//  */
// @ccclass
// class UI_TongJiCongZhi extends ResKeeper {
//     /** 
//      * 建议变量名: contentNode
//      * 内容节点，用于添加统计UI节点
//      */
//     @property(cc.Node)
//     contentNode: cc.Node | null = null;

//     /** 
//      * 建议变量名: currentNode
//      * 当前显示的统计UI节点
//      */
//     private currentNode: cc.Node | null = null;

//     /**
//      * 当组件启用时，添加事件监听
//      * 建议方法名: onComponentEnable
//      */
//     onEnable(): void {
//         EventMgrInstance.addEventListener(EVENT_TYPE.GAME_HIDE_TONGJI, this.hideTongji, this);
//     }

//     /**
//      * 当组件禁用时，移除事件监听
//      * 建议方法名: onComponentDisable
//      */
//     onDisable(): void {
//         EventMgrInstance.rmEventListener(EVENT_TYPE.GAME_HIDE_TONGJI, this.hideTongji, this);
//     }

//     /**
//      * 显示统计提示
//      * 建议方法名: displayStatisticsTip
//      */
//     async showTip(): Promise<void> {
//         if (!this.currentNode) {
//             const prefab = await this._loadRes(BundleNames.Game, "prefabs/TongJiUi", cc.Prefab);
//             this.currentNode = cc.instantiate(prefab);
//             this.contentNode?.addChild(this.currentNode);
//         }
//         this.currentNode.getComponent(UI_AttackTongJi).showTongJi();
//     }

//     /**
//      * 隐藏统计提示
//      * 建议方法名: hideStatisticsTip
//      */
//     hideTongji(): void {
//         if (this.currentNode) {
//             this.currentNode.getComponent(UI_AttackTongJi).hideTongji();
//         }
//     }
// }

// export default UI_TongJiCongZhi;

import { BundleNames } from "./BundleConfig";
import { EventMgrInstance } from "./EventManager";
import ResKeeper from "./ResKeeper";
import { EVENT_TYPE } from "./EvenType";
import ViewAttackTongJi from "./UI_AttackTongJi";

const { ccclass, property } = cc._decorator;

/**
 * 建议类名: AttackStatisticsUI
 * 这个类负责显示和隐藏攻击统计的UI界面
 */
@ccclass
class ViewTongJiCongZhi extends ResKeeper {
    /** 
     * 建议变量名: contentNode
     * 内容节点，用于添加统计UI节点
     */
    @property(cc.Node)
    contentNode: cc.Node | null = null;

    /** 
     * 建议变量名: currentNode
     * 当前显示的统计UI节点
     */
    private currentNode: cc.Node | null = null;

    /**
     * 当组件启用时，添加事件监听
     * 建议方法名: onComponentEnable
     */
    onEnable(): void {
        EventMgrInstance.addListener(EVENT_TYPE.GAME_HIDE_TONGJI, this.hideStatisticsTip, this);
    }

    /**
     * 当组件禁用时，移除事件监听
     * 建议方法名: onComponentDisable
     */
    onDisable(): void {
        EventMgrInstance.removeListener(EVENT_TYPE.GAME_HIDE_TONGJI, this.hideStatisticsTip, this);
    }

    /**
     * 显示统计提示
     * 建议方法名: displayStatisticsTip
     */
    async showTip(): Promise<void> {
        if (!this.currentNode) {
            const prefab = await this._loadRes(BundleNames.Game, "prefabs/TongJiUi", cc.Prefab);
            this.currentNode = cc.instantiate(prefab);
            this.contentNode?.addChild(this.currentNode);
        }
        this.currentNode.getComponent(ViewAttackTongJi).displayStatistics();
    }

    /**
     * 隐藏统计提示
     * 建议方法名: hideStatisticsTip
     */
    hideStatisticsTip(): void {
        if (this.currentNode) {
            this.currentNode.getComponent(ViewAttackTongJi).hideStatistics();
        }
    }
}

export default ViewTongJiCongZhi;